package com.ims.core.doc.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 采集增值税发票结果对象 t_in_collect_invoice
 *
 * @author IMS
 * @date 2024-11-10
 */
public class TInCollectInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 采集ID */
    @Excel(name = "采集ID")
    private String collectId;

    /** 采集批次号 */
    @Excel(name = "采集批次号")
    private String collectNo;

    /** 发票图片 */
    @Excel(name = "发票图片")
    private String invoiceUrl;

    /** 发票ID */
    @Excel(name = "发票ID")
    private String invoiceId;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String custId;

    /** 客户公司代码 */
    @Excel(name = "客户公司代码")
    private String siteCode;

    /** 客户公司 */
    @Excel(name = "客户公司")
    private String siteName;

    /** 发票类型代码 */
    @Excel(name = "发票类型代码")
    private String invoiceType;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String invoiceTypeName;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNo;

    /** 发票代码 */
    @Excel(name = "发票代码")
    private String invoiceCode;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private String invoiceDate;

    /** 印刷序号 */
    @Excel(name = "印刷序号")
    private String printNumber;

    /** 金额(不含税) */
    @Excel(name = "金额(不含税)")
    private BigDecimal feeWithoutTax;

    /** 金额(含税) */
    @Excel(name = "金额(含税)")
    private BigDecimal fee;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal tax;

    /** 销方名称 */
    @Excel(name = "销方名称")
    private String sellerName;

    /** 销方纳税识别号 */
    @Excel(name = "销方纳税识别号")
    private String sellerNumber;

    /** 销方地址 */
    @Excel(name = "销方地址")
    private String sellerAddress;

    /** 销方电话 */
    @Excel(name = "销方电话")
    private String sellerTel;

    /** 销方开户行 */
    @Excel(name = "销方开户行")
    private String sellerBank;

    /** 销方账号 */
    @Excel(name = "销方账号")
    private String sellerAccount;

    /** 名称 */
    @Excel(name = "名称")
    private String buyerName;

    /** 纳税识别号 */
    @Excel(name = "纳税识别号")
    private String buyerNumber;

    /** 地址 */
    @Excel(name = "地址")
    private String buyerAddress;

    /** 电话 */
    @Excel(name = "电话")
    private String buyerTel;

    /** 开户行 */
    @Excel(name = "开户行")
    private String buyerBank;

    /** 账号 */
    @Excel(name = "账号")
    private String buyerAccount;

    /** 凭证号 */
    @Excel(name = "凭证号")
    private String voucherNumber;

    /** 发票状态代码 */
    @Excel(name = "发票状态代码")
    private Integer invoiceStatus;

    /** 发票状态 */
    @Excel(name = "发票状态")
    private String invoiceStatusName;

    /** 查验状态代码 */
    @Excel(name = "查验状态代码")
    private Integer checkStatus;

    /** 查验状态 */
    @Excel(name = "查验状态")
    private String checkStatusName;

    /** 采集状态代码 */
    @Excel(name = "采集状态代码")
    private String collectStatus;

    /** 采集状态 */
    @Excel(name = "采集状态")
    private String collectStatusName;

    /** 签收状态代码 */
    @Excel(name = "签收状态代码")
    private String signStatus;

    /** 签收状态 */
    @Excel(name = "签收状态")
    private String signStatusName;

    /** 校验码 */
    @Excel(name = "校验码")
    private String checkCode;

    /** 发票备注 */
    @Excel(name = "发票备注")
    private String invoiceRemark;

    /** 是否蓝票 */
    @Excel(name = "是否蓝票")
    private Integer invoiceFlag;

    /** 红蓝发票代码 */
    private Integer isRed;

    /** 红蓝发票 */
    @Excel(name = "红蓝发票")
    private String isRedName;

    /** 采集增值税发票明细项信息 */
    private List<TInCollectInvoiceEntry> tInCollectInvoiceEntryList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCollectId(String collectId)
    {
        this.collectId = collectId;
    }

    public String getCollectId()
    {
        return collectId;
    }
    public void setCollectNo(String collectNo)
    {
        this.collectNo = collectNo;
    }

    public String getCollectNo()
    {
        return collectNo;
    }
    public void setInvoiceUrl(String invoiceUrl)
    {
        this.invoiceUrl = invoiceUrl;
    }

    public String getInvoiceUrl()
    {
        return invoiceUrl;
    }
    public void setInvoiceId(String invoiceId)
    {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceId()
    {
        return invoiceId;
    }
    public void setCustId(String custId)
    {
        this.custId = custId;
    }

    public String getCustId()
    {
        return custId;
    }
    public void setSiteCode(String siteCode)
    {
        this.siteCode = siteCode;
    }

    public String getSiteCode()
    {
        return siteCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setInvoiceType(String invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType()
    {
        return invoiceType;
    }
    public void setInvoiceTypeName(String invoiceTypeName)
    {
        this.invoiceTypeName = invoiceTypeName;
    }

    public String getInvoiceTypeName()
    {
        return invoiceTypeName;
    }
    public void setInvoiceNo(String invoiceNo)
    {
        this.invoiceNo = invoiceNo;
    }

    public String getInvoiceNo()
    {
        return invoiceNo;
    }
    public void setInvoiceCode(String invoiceCode)
    {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode()
    {
        return invoiceCode;
    }
    public void setInvoiceDate(String invoiceDate)
    {
        this.invoiceDate = invoiceDate;
    }

    public String getInvoiceDate()
    {
        return invoiceDate;
    }
    public void setPrintNumber(String printNumber)
    {
        this.printNumber = printNumber;
    }

    public String getPrintNumber()
    {
        return printNumber;
    }
    public void setFeeWithoutTax(BigDecimal feeWithoutTax)
    {
        this.feeWithoutTax = feeWithoutTax;
    }

    public BigDecimal getFeeWithoutTax()
    {
        return feeWithoutTax;
    }
    public void setFee(BigDecimal fee)
    {
        this.fee = fee;
    }

    public BigDecimal getFee()
    {
        return fee;
    }
    public void setTax(BigDecimal tax)
    {
        this.tax = tax;
    }

    public BigDecimal getTax()
    {
        return tax;
    }
    public void setSellerName(String sellerName)
    {
        this.sellerName = sellerName;
    }

    public String getSellerName()
    {
        return sellerName;
    }
    public void setSellerNumber(String sellerNumber)
    {
        this.sellerNumber = sellerNumber;
    }

    public String getSellerNumber()
    {
        return sellerNumber;
    }
    public void setSellerAddress(String sellerAddress)
    {
        this.sellerAddress = sellerAddress;
    }

    public String getSellerAddress()
    {
        return sellerAddress;
    }
    public void setSellerTel(String sellerTel)
    {
        this.sellerTel = sellerTel;
    }

    public String getSellerTel()
    {
        return sellerTel;
    }
    public void setSellerBank(String sellerBank)
    {
        this.sellerBank = sellerBank;
    }

    public String getSellerBank()
    {
        return sellerBank;
    }
    public void setSellerAccount(String sellerAccount)
    {
        this.sellerAccount = sellerAccount;
    }

    public String getSellerAccount()
    {
        return sellerAccount;
    }
    public void setBuyerName(String buyerName)
    {
        this.buyerName = buyerName;
    }

    public String getBuyerName()
    {
        return buyerName;
    }
    public void setBuyerNumber(String buyerNumber)
    {
        this.buyerNumber = buyerNumber;
    }

    public String getBuyerNumber()
    {
        return buyerNumber;
    }
    public void setBuyerAddress(String buyerAddress)
    {
        this.buyerAddress = buyerAddress;
    }

    public String getBuyerAddress()
    {
        return buyerAddress;
    }
    public void setBuyerTel(String buyerTel)
    {
        this.buyerTel = buyerTel;
    }

    public String getBuyerTel()
    {
        return buyerTel;
    }
    public void setBuyerBank(String buyerBank)
    {
        this.buyerBank = buyerBank;
    }

    public String getBuyerBank()
    {
        return buyerBank;
    }
    public void setBuyerAccount(String buyerAccount)
    {
        this.buyerAccount = buyerAccount;
    }

    public String getBuyerAccount()
    {
        return buyerAccount;
    }
    public void setVoucherNumber(String voucherNumber)
    {
        this.voucherNumber = voucherNumber;
    }

    public String getVoucherNumber()
    {
        return voucherNumber;
    }
    public void setInvoiceStatus(Integer invoiceStatus)
    {
        this.invoiceStatus = invoiceStatus;
    }

    public Integer getInvoiceStatus()
    {
        return invoiceStatus;
    }
    public void setInvoiceStatusName(String invoiceStatusName)
    {
        this.invoiceStatusName = invoiceStatusName;
    }

    public String getInvoiceStatusName()
    {
        return invoiceStatusName;
    }
    public void setCheckStatus(Integer checkStatus)
    {
        this.checkStatus = checkStatus;
    }

    public Integer getCheckStatus()
    {
        return checkStatus;
    }
    public void setCheckStatusName(String checkStatusName)
    {
        this.checkStatusName = checkStatusName;
    }

    public String getCheckStatusName()
    {
        return checkStatusName;
    }
    public void setCollectStatus(String collectStatus)
    {
        this.collectStatus = collectStatus;
    }

    public String getCollectStatus()
    {
        return collectStatus;
    }
    public void setCollectStatusName(String collectStatusName)
    {
        this.collectStatusName = collectStatusName;
    }

    public String getCollectStatusName()
    {
        return collectStatusName;
    }
    public void setSignStatus(String signStatus)
    {
        this.signStatus = signStatus;
    }

    public String getSignStatus()
    {
        return signStatus;
    }
    public void setSignStatusName(String signStatusName)
    {
        this.signStatusName = signStatusName;
    }

    public String getSignStatusName()
    {
        return signStatusName;
    }
    public void setCheckCode(String checkCode)
    {
        this.checkCode = checkCode;
    }

    public String getCheckCode()
    {
        return checkCode;
    }
    public void setInvoiceRemark(String invoiceRemark)
    {
        this.invoiceRemark = invoiceRemark;
    }

    public String getInvoiceRemark()
    {
        return invoiceRemark;
    }

    public List<TInCollectInvoiceEntry> getTInCollectInvoiceEntryList()
    {
        return tInCollectInvoiceEntryList;
    }

    public void setTInCollectInvoiceEntryList(List<TInCollectInvoiceEntry> tInCollectInvoiceEntryList)
    {
        this.tInCollectInvoiceEntryList = tInCollectInvoiceEntryList;
    }

    public Integer getInvoiceFlag() {
        return invoiceFlag;
    }

    public void setInvoiceFlag(Integer invoiceFlag) {
        this.invoiceFlag = invoiceFlag;
    }

    public Integer getIsRed() {
        return isRed;
    }

    public void setIsRed(Integer isRed) {
        this.isRed = isRed;
    }

    public String getIsRedName() {
        return isRedName;
    }

    public void setIsRedName(String isRedName) {
        this.isRedName = isRedName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("collectId", getCollectId())
            .append("collectNo", getCollectNo())
            .append("invoiceUrl", getInvoiceUrl())
            .append("invoiceId", getInvoiceId())
            .append("custId", getCustId())
            .append("siteCode", getSiteCode())
            .append("siteName", getSiteName())
            .append("invoiceType", getInvoiceType())
            .append("invoiceTypeName", getInvoiceTypeName())
            .append("invoiceNo", getInvoiceNo())
            .append("invoiceCode", getInvoiceCode())
            .append("invoiceDate", getInvoiceDate())
            .append("printNumber", getPrintNumber())
            .append("feeWithoutTax", getFeeWithoutTax())
            .append("fee", getFee())
            .append("tax", getTax())
            .append("sellerName", getSellerName())
            .append("sellerNumber", getSellerNumber())
            .append("sellerAddress", getSellerAddress())
            .append("sellerTel", getSellerTel())
            .append("sellerBank", getSellerBank())
            .append("sellerAccount", getSellerAccount())
            .append("buyerName", getBuyerName())
            .append("buyerNumber", getBuyerNumber())
            .append("buyerAddress", getBuyerAddress())
            .append("buyerTel", getBuyerTel())
            .append("buyerBank", getBuyerBank())
            .append("buyerAccount", getBuyerAccount())
            .append("voucherNumber", getVoucherNumber())
            .append("invoiceStatus", getInvoiceStatus())
            .append("invoiceStatusName", getInvoiceStatusName())
            .append("checkStatus", getCheckStatus())
            .append("checkStatusName", getCheckStatusName())
            .append("collectStatus", getCollectStatus())
            .append("collectStatusName", getCollectStatusName())
            .append("signStatus", getSignStatus())
            .append("signStatusName", getSignStatusName())
            .append("checkCode", getCheckCode())
            .append("invoiceRemark", getInvoiceRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("tInCollectInvoiceEntryList", getTInCollectInvoiceEntryList())
            .toString();
    }
}
